#define _CRT_SECURE_NO_WARNING
#include<iostream>
using namespace std;
class A
{
public:

	virtual void func1()
	{
		cout << 1 << endl;
	}
	virtual void func2()
	{}
};
class B :public A
{
public:
	virtual  void func2()
	{
		
		cout << 2<< endl;
	}
};


class Base
{
public:
	virtual void Func1()
	{
		cout << "Base::Func1()" << endl;
	}

	virtual void Func2()
	{
		cout << "Base::Func2()" << endl;
	}

	void Func3()
	{
		cout << "Base::Func3()" << endl;
	}
private:
	int _b = 1;
	char _ch = 'a';
};

class Derive : public Base
{
public:
	virtual void Func1()
	{
		cout << "Derive::Func1()" << endl;
	}
private:
	int _d = 2;
};


int main()
{
	Base  bb;
	Derive dd;

	return 0;
}